#include <stdio.h>

/*
 * 冒泡排序：
 *使用数组，对无序的数组在原数组上从小到大进行排序
 * 核心思想：
 *    每次循环中，都找到该查找范围内最大值，将其放置到该范围内的最后位置。
 *
 * 数组 arr  ,长度N
 * 第一次查找范围[0,N-1]
 * 第二次查找范围[0,N-2]
 * ......
 * 最后一次的查找范围[0,1]
 *
 * */
/*
 * 函数名：bubbleSort()
 * 输入：无序的数组，数组的长度
 * 输出：无
 * */
void bubbleSort(int arr[],int length){

    for (int i = 0; i <length-1 ; ++i) {
        //实现一次操作：找到该范围内的最大值，放到该范围的最后位置,通过两两比较来实现
        //比较次数=数组的长度-1
        int tmp;
        for (int j = 0; j < length-1-i; ++j) {
            //如果前值比后值大，则交换位置
            if(arr[j]>arr[j+1]){
                tmp =arr[j];
                arr[j]=arr[j+1];
                arr[j+1]=tmp;
            }
        }
    }
}
int main() {
    int arr[5]={5,2,16,7,9};
    bubbleSort(arr,5);
   // printf("Hello, World!\n");
    return 0;
}
